package com.stu.demo0519.demo2;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-05-19
 * Time: 23:10
 */
//父类：
class Base {
    //成员变量：
    public int a = 1;
    public int b = 2;
    //成员方法：
    public void testBase() {
        System.out.println("testBase........");
    }
    public void testA() {//父类中的testA
        System.out.println("testA()Base...........");
    }
}
//子类：
class Derived extends Base {
    public int c = 3;
    public int a = 4;
    //成员方法：
    public void testDerived() {
        System.out.println("testDerived()Derived..........");
    }
    public void testA() {//子类中的testA
        System.out.println("testA()Derived..........");
    }
    public void test() {//测试一下调用的是哪一个testA？
        this.testA();//这个调用子类的
        super.testA();//这个调用父类的
        //符合就近原则：先调用子类的
        //this()与super() 不能共存 都需在第一条语句：
        //都调用构造方法：
        //但是super()是为了对父类成员初始化
    }
    public void test1() {
        //this是访问当前类的引用 super是访问父类的引用
        System.out.println(this.a);
        System.out.println(super.a);
        //符合就近原则：现在子类中寻找，没有才去父类寻找，但是父类假如也没有，就会报错
        System.out.println(b);
        System.out.println(c);
    }
}
public class Test {
    public static void main(String[] args) {
        //对象的实例化：
        Derived derived = new Derived();
        derived.test();
        System.out.println("===============================");
        derived.test1();
    }

}
